package com.zmzncs.lmtc.module.park.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zmzncs.lmtc.module.park.pojo.parkinfo.ParkInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zmzncs.lmtc.module.park.pojo.parkinfo.ParkInfoDTO;
import org.apache.ibatis.annotations.Param;

import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 任建波
 * @since 2020-10-09
 */
public interface ParkInfoService extends IService<ParkInfo> {

    /**获取附近停车场*/
    IPage<ParkInfoDTO> getNearbyParkList(Page page,String longitude,String latitude);
    /**查询附近有月租规则的停车场*/
    IPage<ParkInfoDTO> getNearbyParkHasMonthRuleList(Page page,String longitude,String latitude);
    /**获取停车场列表*/
    List<ParkInfoDTO> getParkList();

    /**获取预约停车场列表*/
    List<ParkInfoDTO> getReserveParkList(String parkName);

    /**获取最近预约停车场列表*/
    ParkInfoDTO getNearbyReserveParkList(String longitude, String latitude);

    /** 模糊查询停车场（名称、地址）*/
    List<ParkInfoDTO> getParkByName(String keyword);

    /**查询停车场剩余可预约车位数 */
    Integer getParkReservesSpace(Long parkId, Date reserveDate);

    /**ID查询停车场信息*/
    ParkInfoDTO getParkInfoById(Long parkId);
}
